learn pattern design